package com.liukai.novel_commons;

import android.content.Intent;

import com.liukai.novel_commons.entities.NovelRack;
import com.liukai.novel_commons.entities.UserInfo;


import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

public interface API {

    /**
     * 获取所有的小说类别
     *
     * @return
     */
    @GET("/novelType/findAllNovelType")
    Call<Result> findAllNovelType();

    /**
     * 获取小说类别下面的所有小说
     *
     * @param typeId
     * @return
     */
    @GET("/novelType/getNovelByTypeId/{typeId}")
    Call<Result> getNovelByTypeId(@Path("typeId") Integer typeId);

    /**
     * 登录
     *
     * @param userInfo
     * @return
     */
    @POST("/user/login")
    Call<Result> login(@Body UserInfo userInfo);

    /**
     * 获取用户的书架
     *
     * @param userId
     * @return
     */
    @GET("/rack/findAllRackByUserId/{userId}")
    Call<Result> findAllRackByUserId(@Path("userId") String userId);

    /**
     * 根据小说id获取小说信息
     *
     * @param novelId
     * @return
     */
    @GET("/novel/findNovelInfoById/{novelId}")
    Call<Result> findNovelInfoById(@Path("novelId") String novelId);

    @GET("/novelChapter/findNovelChapterById")
    Call<Result> findNovelChapterById(@Query("chapterId") Integer chapterId, @Query("novelId") String novelId);

    @PUT("/rack/updateRackById")
    Call<Result> updateRackById(@Body NovelRack novelRack);

    /**
     * 获取小说目录
     *
     * @param novelId
     * @return
     */
    @GET("/novelChapter/loadMuLu/{novelId}")
    Call<Result> loadMuLu(@Path("novelId") String novelId);

    @GET("/novel/findNovelLikeName/{novelName}")
    Call<Result> findNovelLikeName(@Path("novelName") String novelName);

    /**
     * 根据章节编号和小说编号查找章节名称
     *
     * @param chapterId
     * @param novelId
     * @return
     */
    @GET("/novel/findChapterNameById")
    Call<Result> findChapterNameById(@Query("chapterId") Integer chapterId, @Query("novelId") String novelId);

    /**
     * 将小说添加到书架
     * @param novelRack
     * @return
     */
    @POST("/rack/addRack")
    Call<Result> addRack(@Body NovelRack novelRack);

    @GET("/rack/deleteRackById")
    Call<Result> deleteRackById(@Query("novelId") String novelId, @Query("userId") String userId);

}
